//auto gen by paipai.java.augogen ver 3.0.0
//author skyzhuang
//source idl: com.erp.company.ao.idl.AddAndUpdateCompanyInfoReq.java


#ifndef ERP_COMPANY_PO_CCOMPANYINFOPO_BY_AUTOGEN_V5_H
#define ERP_COMPANY_PO_CCOMPANYINFOPO_BY_AUTOGEN_V5_H


#include "app_platform/intf_serializable.h"
#include <string>
#include <sstream>
#include <iostream>


namespace erp
{
namespace company
{
namespace po
{


class CCompanyInfoPo : public ISerializable
{
	public:
		std::string m_sLastErrMsg;///<错误信息

		/**
		 * 版本号  
		 *
		 * 版本 >= 0
		 */
		uint32_t dwVersion;

		/**
		 * cVersion_u uflag field
		 */
		uint8_t cVersion_u; //optional flag

		/**
		 * 企业SysNo
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwCompanySysNo;

		/**
		 * cCompanySysNo_u uflag field
		 */
		uint8_t cCompanySysNo_u; //optional flag

		/**
		 * 公司名称
		 *
		 * 版本 >= 0
		 */
		std::string strCompanyName;

		/**
		 * cCompanyName_u uflag field
		 */
		uint8_t cCompanyName_u; //optional flag

		/**
		 * 公司法人
		 *
		 * 版本 >= 0
		 */
		std::string strCompanyCorporation;

		/**
		 * cCompanyCorporation_u uflag field
		 */
		uint8_t cCompanyCorporation_u; //optional flag

		/**
		 * 公司ID
		 *
		 * 版本 >= 0
		 */
		std::string strCompanyID;

		/**
		 * cCompanyID_u uflag field
		 */
		uint8_t cCompanyID_u; //optional flag

		/**
		 * 映射表ID
		 *
		 * 版本 >= 0
		 */
		std::string strTableID;

		/**
		 * cTableID_u uflag field
		 */
		uint8_t cTableID_u; //optional flag

		/**
		 * 公司状态
		 *
		 * 版本 >= 0
		 */
		uint32_t dwFCompanyStatus;

		/**
		 * cFCompanyStatus_u uflag field
		 */
		uint8_t cFCompanyStatus_u; //optional flag

		/**
		 * 公司属性
		 *
		 * 版本 >= 0
		 */
		uint32_t dwFCompanyProperty;

		/**
		 * cFCompanyProperty_u uflag field
		 */
		uint8_t cFCompanyProperty_u; //optional flag

		/**
		 * 创建人SysNo
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwCreatorSysNo;

		/**
		 * cCreatorSysNo_u uflag field
		 */
		uint8_t cCreatorSysNo_u; //optional flag

		/**
		 * 创建时间
		 *
		 * 版本 >= 0
		 */
		uint32_t dwRowCreatDate;

		/**
		 * cRowCreatDate_u uflag field
		 */
		uint8_t cRowCreatDate_u; //optional flag

		/**
		 * 编辑者SysNo
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwModifierSysNo;

		/**
		 * cModifierSysNo_u uflag field
		 */
		uint8_t cModifierSysNo_u; //optional flag

		/**
		 * 编辑时间
		 *
		 * 版本 >= 0
		 */
		uint32_t dwRowModifyDate;

		/**
		 * cRowModifyDate_u uflag field
		 */
		uint8_t cRowModifyDate_u; //optional flag




	public:
		CCompanyInfoPo():
		dwVersion(0),
		cVersion_u(0),
		ddwCompanySysNo(0),
		cCompanySysNo_u(0),
		cCompanyName_u(0),
		cCompanyCorporation_u(0),
		cCompanyID_u(0),
		cTableID_u(0),
		dwFCompanyStatus(0),
		cFCompanyStatus_u(0),
		dwFCompanyProperty(0),
		cFCompanyProperty_u(0),
		ddwCreatorSysNo(0),
		cCreatorSysNo_u(0),
		dwRowCreatDate(0),
		cRowCreatDate_u(0),
		ddwModifierSysNo(0),
		cModifierSysNo_u(0),
		dwRowModifyDate(0),
		cRowModifyDate_u(0) {}
				CCompanyInfoPo& operator = (const CCompanyInfoPo& obj){

			this->dwVersion = obj.dwVersion;
			this->ddwCompanySysNo = obj.ddwCompanySysNo;
			this->strCompanyName = obj.strCompanyName;
			this->strCompanyCorporation = obj.strCompanyCorporation;
			this->strCompanyID = obj.strCompanyID;
			this->strTableID = obj.strTableID;
			this->dwFCompanyStatus = obj.dwFCompanyStatus;
			this->dwFCompanyProperty = obj.dwFCompanyProperty;
			this->ddwCreatorSysNo = obj.ddwCreatorSysNo;
			this->dwRowCreatDate = obj.dwRowCreatDate;
			this->ddwModifierSysNo = obj.ddwModifierSysNo;
			this->dwRowModifyDate = obj.dwRowModifyDate;
			this->cVersion_u = obj.cVersion_u;
			this->cCompanySysNo_u = obj.cCompanySysNo_u;
			this->cCompanyName_u = obj.cCompanyName_u;
			this->cCompanyCorporation_u = obj.cCompanyCorporation_u;
			this->cCompanyID_u = obj.cCompanyID_u;
			this->cTableID_u = obj.cTableID_u;
			this->cFCompanyStatus_u = obj.cFCompanyStatus_u;
			this->cFCompanyProperty_u = obj.cFCompanyProperty_u;
			this->cCreatorSysNo_u = obj.cCreatorSysNo_u;
			this->cRowCreatDate_u = obj.cRowCreatDate_u;
			this->cModifierSysNo_u = obj.cModifierSysNo_u;
			this->cRowModifyDate_u = obj.cRowModifyDate_u;
			return *this;
		}

	public:


		/**
		 * 是否设置版本号  了
		 * 
		 * @param uint32_t:dwVersion
		 *  
		 * 
		 */
		 bool  IsVersionSet() const{
				 return  cVersion_u != 0;
		}


		/**
		 * 获取uflag版本号  了
		 * 
		 * @param uint32_t:dwVersion
		 *  
		 * 
		 */
		 const uint8_t   GetVersionUFlag() const{
				 return  cVersion_u;
		}


		/**
		 * 设置版本号  
		 * 
		 * @param uint32_t:dwVersion
		 *  
		 * 
		 */
		 void  SetVersion( const uint32_t& sVal, uint8_t cUFlag=1){
				dwVersion = sVal;
				cVersion_u = cUFlag;
		}


		/**
		 * 获取版本号  
		 * 
		 * @return dwVersion value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetVersion() const {
				return dwVersion;
		}


		/**
		 * 是否设置企业SysNo了
		 * 
		 * @param uint64_t:ddwCompanySysNo
		 *  
		 * 
		 */
		 bool  IsCompanySysNoSet() const{
				 return  cCompanySysNo_u != 0;
		}


		/**
		 * 获取uflag企业SysNo了
		 * 
		 * @param uint64_t:ddwCompanySysNo
		 *  
		 * 
		 */
		 const uint8_t   GetCompanySysNoUFlag() const{
				 return  cCompanySysNo_u;
		}


		/**
		 * 设置企业SysNo
		 * 
		 * @param uint64_t:ddwCompanySysNo
		 *  
		 * 
		 */
		 void  SetCompanySysNo( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwCompanySysNo = sVal;
				cCompanySysNo_u = cUFlag;
		}


		/**
		 * 获取企业SysNo
		 * 
		 * @return ddwCompanySysNo value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetCompanySysNo() const {
				return ddwCompanySysNo;
		}


		/**
		 * 是否设置公司名称了
		 * 
		 * @param std::string:strCompanyName
		 *  
		 * 
		 */
		 bool  IsCompanyNameSet() const{
				 return  cCompanyName_u != 0;
		}


		/**
		 * 获取uflag公司名称了
		 * 
		 * @param std::string:strCompanyName
		 *  
		 * 
		 */
		 const uint8_t   GetCompanyNameUFlag() const{
				 return  cCompanyName_u;
		}


		/**
		 * 设置公司名称
		 * 
		 * @param std::string:strCompanyName
		 *  
		 * 
		 */
		 void  SetCompanyName( const std::string& sVal, uint8_t cUFlag=1){
				strCompanyName = sVal;
				cCompanyName_u = cUFlag;
		}


		/**
		 * 获取公司名称
		 * 
		 * @return strCompanyName value 类型为:std::string
		 * 
		 */
		 const std::string&  GetCompanyName() const {
				return strCompanyName;
		}


		/**
		 * 获取公司名称
		 * 
		 * @return strCompanyName value 类型为:std::string
		 * 
		 */
		 std::string&  GetCompanyName() {
				return strCompanyName;
		}


		/**
		 * 是否设置公司法人了
		 * 
		 * @param std::string:strCompanyCorporation
		 *  
		 * 
		 */
		 bool  IsCompanyCorporationSet() const{
				 return  cCompanyCorporation_u != 0;
		}


		/**
		 * 获取uflag公司法人了
		 * 
		 * @param std::string:strCompanyCorporation
		 *  
		 * 
		 */
		 const uint8_t   GetCompanyCorporationUFlag() const{
				 return  cCompanyCorporation_u;
		}


		/**
		 * 设置公司法人
		 * 
		 * @param std::string:strCompanyCorporation
		 *  
		 * 
		 */
		 void  SetCompanyCorporation( const std::string& sVal, uint8_t cUFlag=1){
				strCompanyCorporation = sVal;
				cCompanyCorporation_u = cUFlag;
		}


		/**
		 * 获取公司法人
		 * 
		 * @return strCompanyCorporation value 类型为:std::string
		 * 
		 */
		 const std::string&  GetCompanyCorporation() const {
				return strCompanyCorporation;
		}


		/**
		 * 获取公司法人
		 * 
		 * @return strCompanyCorporation value 类型为:std::string
		 * 
		 */
		 std::string&  GetCompanyCorporation() {
				return strCompanyCorporation;
		}


		/**
		 * 是否设置公司ID了
		 * 
		 * @param std::string:strCompanyID
		 *  
		 * 
		 */
		 bool  IsCompanyIDSet() const{
				 return  cCompanyID_u != 0;
		}


		/**
		 * 获取uflag公司ID了
		 * 
		 * @param std::string:strCompanyID
		 *  
		 * 
		 */
		 const uint8_t   GetCompanyIDUFlag() const{
				 return  cCompanyID_u;
		}


		/**
		 * 设置公司ID
		 * 
		 * @param std::string:strCompanyID
		 *  
		 * 
		 */
		 void  SetCompanyID( const std::string& sVal, uint8_t cUFlag=1){
				strCompanyID = sVal;
				cCompanyID_u = cUFlag;
		}


		/**
		 * 获取公司ID
		 * 
		 * @return strCompanyID value 类型为:std::string
		 * 
		 */
		 const std::string&  GetCompanyID() const {
				return strCompanyID;
		}


		/**
		 * 获取公司ID
		 * 
		 * @return strCompanyID value 类型为:std::string
		 * 
		 */
		 std::string&  GetCompanyID() {
				return strCompanyID;
		}


		/**
		 * 是否设置映射表ID了
		 * 
		 * @param std::string:strTableID
		 *  
		 * 
		 */
		 bool  IsTableIDSet() const{
				 return  cTableID_u != 0;
		}


		/**
		 * 获取uflag映射表ID了
		 * 
		 * @param std::string:strTableID
		 *  
		 * 
		 */
		 const uint8_t   GetTableIDUFlag() const{
				 return  cTableID_u;
		}


		/**
		 * 设置映射表ID
		 * 
		 * @param std::string:strTableID
		 *  
		 * 
		 */
		 void  SetTableID( const std::string& sVal, uint8_t cUFlag=1){
				strTableID = sVal;
				cTableID_u = cUFlag;
		}


		/**
		 * 获取映射表ID
		 * 
		 * @return strTableID value 类型为:std::string
		 * 
		 */
		 const std::string&  GetTableID() const {
				return strTableID;
		}


		/**
		 * 获取映射表ID
		 * 
		 * @return strTableID value 类型为:std::string
		 * 
		 */
		 std::string&  GetTableID() {
				return strTableID;
		}


		/**
		 * 是否设置公司状态了
		 * 
		 * @param uint32_t:dwFCompanyStatus
		 *  
		 * 
		 */
		 bool  IsFCompanyStatusSet() const{
				 return  cFCompanyStatus_u != 0;
		}


		/**
		 * 获取uflag公司状态了
		 * 
		 * @param uint32_t:dwFCompanyStatus
		 *  
		 * 
		 */
		 const uint8_t   GetFCompanyStatusUFlag() const{
				 return  cFCompanyStatus_u;
		}


		/**
		 * 设置公司状态
		 * 
		 * @param uint32_t:dwFCompanyStatus
		 *  
		 * 
		 */
		 void  SetFCompanyStatus( const uint32_t& sVal, uint8_t cUFlag=1){
				dwFCompanyStatus = sVal;
				cFCompanyStatus_u = cUFlag;
		}


		/**
		 * 获取公司状态
		 * 
		 * @return dwFCompanyStatus value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetFCompanyStatus() const {
				return dwFCompanyStatus;
		}


		/**
		 * 是否设置公司属性了
		 * 
		 * @param uint32_t:dwFCompanyProperty
		 *  
		 * 
		 */
		 bool  IsFCompanyPropertySet() const{
				 return  cFCompanyProperty_u != 0;
		}


		/**
		 * 获取uflag公司属性了
		 * 
		 * @param uint32_t:dwFCompanyProperty
		 *  
		 * 
		 */
		 const uint8_t   GetFCompanyPropertyUFlag() const{
				 return  cFCompanyProperty_u;
		}


		/**
		 * 设置公司属性
		 * 
		 * @param uint32_t:dwFCompanyProperty
		 *  
		 * 
		 */
		 void  SetFCompanyProperty( const uint32_t& sVal, uint8_t cUFlag=1){
				dwFCompanyProperty = sVal;
				cFCompanyProperty_u = cUFlag;
		}


		/**
		 * 获取公司属性
		 * 
		 * @return dwFCompanyProperty value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetFCompanyProperty() const {
				return dwFCompanyProperty;
		}


		/**
		 * 是否设置创建人SysNo了
		 * 
		 * @param uint64_t:ddwCreatorSysNo
		 *  
		 * 
		 */
		 bool  IsCreatorSysNoSet() const{
				 return  cCreatorSysNo_u != 0;
		}


		/**
		 * 获取uflag创建人SysNo了
		 * 
		 * @param uint64_t:ddwCreatorSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetCreatorSysNoUFlag() const{
				 return  cCreatorSysNo_u;
		}


		/**
		 * 设置创建人SysNo
		 * 
		 * @param uint64_t:ddwCreatorSysNo
		 *  
		 * 
		 */
		 void  SetCreatorSysNo( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwCreatorSysNo = sVal;
				cCreatorSysNo_u = cUFlag;
		}


		/**
		 * 获取创建人SysNo
		 * 
		 * @return ddwCreatorSysNo value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetCreatorSysNo() const {
				return ddwCreatorSysNo;
		}


		/**
		 * 是否设置创建时间了
		 * 
		 * @param uint32_t:dwRowCreatDate
		 *  
		 * 
		 */
		 bool  IsRowCreatDateSet() const{
				 return  cRowCreatDate_u != 0;
		}


		/**
		 * 获取uflag创建时间了
		 * 
		 * @param uint32_t:dwRowCreatDate
		 *  
		 * 
		 */
		 const uint8_t   GetRowCreatDateUFlag() const{
				 return  cRowCreatDate_u;
		}


		/**
		 * 设置创建时间
		 * 
		 * @param uint32_t:dwRowCreatDate
		 *  
		 * 
		 */
		 void  SetRowCreatDate( const uint32_t& sVal, uint8_t cUFlag=1){
				dwRowCreatDate = sVal;
				cRowCreatDate_u = cUFlag;
		}


		/**
		 * 获取创建时间
		 * 
		 * @return dwRowCreatDate value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetRowCreatDate() const {
				return dwRowCreatDate;
		}


		/**
		 * 是否设置编辑者SysNo了
		 * 
		 * @param uint64_t:ddwModifierSysNo
		 *  
		 * 
		 */
		 bool  IsModifierSysNoSet() const{
				 return  cModifierSysNo_u != 0;
		}


		/**
		 * 获取uflag编辑者SysNo了
		 * 
		 * @param uint64_t:ddwModifierSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetModifierSysNoUFlag() const{
				 return  cModifierSysNo_u;
		}


		/**
		 * 设置编辑者SysNo
		 * 
		 * @param uint64_t:ddwModifierSysNo
		 *  
		 * 
		 */
		 void  SetModifierSysNo( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwModifierSysNo = sVal;
				cModifierSysNo_u = cUFlag;
		}


		/**
		 * 获取编辑者SysNo
		 * 
		 * @return ddwModifierSysNo value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetModifierSysNo() const {
				return ddwModifierSysNo;
		}


		/**
		 * 是否设置编辑时间了
		 * 
		 * @param uint32_t:dwRowModifyDate
		 *  
		 * 
		 */
		 bool  IsRowModifyDateSet() const{
				 return  cRowModifyDate_u != 0;
		}


		/**
		 * 获取uflag编辑时间了
		 * 
		 * @param uint32_t:dwRowModifyDate
		 *  
		 * 
		 */
		 const uint8_t   GetRowModifyDateUFlag() const{
				 return  cRowModifyDate_u;
		}


		/**
		 * 设置编辑时间
		 * 
		 * @param uint32_t:dwRowModifyDate
		 *  
		 * 
		 */
		 void  SetRowModifyDate( const uint32_t& sVal, uint8_t cUFlag=1){
				dwRowModifyDate = sVal;
				cRowModifyDate_u = cUFlag;
		}


		/**
		 * 获取编辑时间
		 * 
		 * @return dwRowModifyDate value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetRowModifyDate() const {
				return dwRowModifyDate;
		}

		virtual bool Serialize(CByteStreamNetwork& bs){
		
			uint32_t dwMyLen = 0;
			if(bs.isStoring()) //for write in buffer
			{
				//can not larger than 1 M.
				CByteStreamNetwork bsDummy(NULL, 1024 * 1024, false);
				//bsDummy for precheck the xo size...
				bsDummy.isStoring(true);
				Serialize_i(bsDummy);
				dwMyLen = bsDummy.getWrittenLength();
				bs & dwMyLen;
				Serialize_i(bs);
			}
			else
			{    //for read from buffer
				bs & dwMyLen;
				uint32_t dwReadedLen = bs.getReadLength();
				Serialize_i(bs);
				dwReadedLen = bs.getReadLength() - dwReadedLen;
				// dwReadedLen for the size of xo
				if( dwReadedLen > dwMyLen ){
					return false;
				}
				//go through the unwanted mem position...
				bs.goForward( dwMyLen - dwReadedLen );
			}

			return bs.isGood();
		}

		bool Serialize_i(CByteStreamNetwork& bsTmp){

			bsTmp & dwVersion; // 序列化版本号   类型为uint32_t
			bsTmp & cVersion_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwCompanySysNo; // 序列化企业SysNo 类型为uint64_t
			bsTmp & cCompanySysNo_u; // 序列化uflag 类型为uint8_t
			bsTmp & strCompanyName; // 序列化公司名称 类型为String
			bsTmp & cCompanyName_u; // 序列化uflag 类型为uint8_t
			bsTmp & strCompanyCorporation; // 序列化公司法人 类型为String
			bsTmp & cCompanyCorporation_u; // 序列化uflag 类型为uint8_t
			bsTmp & strCompanyID; // 序列化公司ID 类型为String
			bsTmp & cCompanyID_u; // 序列化uflag 类型为uint8_t
			bsTmp & strTableID; // 序列化映射表ID 类型为String
			bsTmp & cTableID_u; // 序列化uflag 类型为uint8_t
			bsTmp & dwFCompanyStatus; // 序列化公司状态 类型为uint32_t
			bsTmp & cFCompanyStatus_u; // 序列化uflag 类型为uint8_t
			bsTmp & dwFCompanyProperty; // 序列化公司属性 类型为uint32_t
			bsTmp & cFCompanyProperty_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwCreatorSysNo; // 序列化创建人SysNo 类型为uint64_t
			bsTmp & cCreatorSysNo_u; // 序列化uflag 类型为uint8_t
			bsTmp & dwRowCreatDate; // 序列化创建时间 类型为uint32_t
			bsTmp & cRowCreatDate_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwModifierSysNo; // 序列化编辑者SysNo 类型为uint64_t
			bsTmp & cModifierSysNo_u; // 序列化uflag 类型为uint8_t
			bsTmp & dwRowModifyDate; // 序列化编辑时间 类型为uint32_t
			bsTmp & cRowModifyDate_u; // 序列化uflag 类型为uint8_t
			return bsTmp.isGood();
		}

		const char* GetLastErrMsg() const{
			return m_sLastErrMsg.c_str();
		}

		bool VerifyCompanyInfoPo(){

			if(!IsVersionSet()){
				m_sLastErrMsg = "Miss Param:version";
				return false;
			}

			if(!IsCompanySysNoSet()){
				m_sLastErrMsg = "Miss Param:companySysNo";
				return false;
			}

			if(!IsCompanyNameSet()){
				m_sLastErrMsg = "Miss Param:companyName";
				return false;
			}

			if(!IsCompanyCorporationSet()){
				m_sLastErrMsg = "Miss Param:companyCorporation";
				return false;
			}

			if(!IsCompanyIDSet()){
				m_sLastErrMsg = "Miss Param:companyID";
				return false;
			}

			if(!IsTableIDSet()){
				m_sLastErrMsg = "Miss Param:tableID";
				return false;
			}

			if(!IsFCompanyStatusSet()){
				m_sLastErrMsg = "Miss Param:FCompanyStatus";
				return false;
			}

			if(!IsFCompanyPropertySet()){
				m_sLastErrMsg = "Miss Param:FCompanyProperty";
				return false;
			}

			if(!IsCreatorSysNoSet()){
				m_sLastErrMsg = "Miss Param:creatorSysNo";
				return false;
			}

			if(!IsRowCreatDateSet()){
				m_sLastErrMsg = "Miss Param:rowCreatDate";
				return false;
			}

			if(!IsModifierSysNoSet()){
				m_sLastErrMsg = "Miss Param:modifierSysNo";
				return false;
			}

			if(!IsRowModifyDateSet()){
				m_sLastErrMsg = "Miss Param:rowModifyDate";
				return false;
			}
			return true;
		}

		void DumpData(std::ostream& oss) const{
		
			oss<<"[dwVersion:"<<dwVersion<<"] ";
			oss<<"[cVersion_u:"<<(int)cVersion_u<<"] ";
			oss<<"[ddwCompanySysNo:"<<ddwCompanySysNo<<"] ";
			oss<<"[cCompanySysNo_u:"<<(int)cCompanySysNo_u<<"] ";
			oss<<"[strCompanyName:"<<strCompanyName<<"] ";
			oss<<"[cCompanyName_u:"<<(int)cCompanyName_u<<"] ";
			oss<<"[strCompanyCorporation:"<<strCompanyCorporation<<"] ";
			oss<<"[cCompanyCorporation_u:"<<(int)cCompanyCorporation_u<<"] ";
			oss<<"[strCompanyID:"<<strCompanyID<<"] ";
			oss<<"[cCompanyID_u:"<<(int)cCompanyID_u<<"] ";
			oss<<"[strTableID:"<<strTableID<<"] ";
			oss<<"[cTableID_u:"<<(int)cTableID_u<<"] ";
			oss<<"[dwFCompanyStatus:"<<dwFCompanyStatus<<"] ";
			oss<<"[cFCompanyStatus_u:"<<(int)cFCompanyStatus_u<<"] ";
			oss<<"[dwFCompanyProperty:"<<dwFCompanyProperty<<"] ";
			oss<<"[cFCompanyProperty_u:"<<(int)cFCompanyProperty_u<<"] ";
			oss<<"[ddwCreatorSysNo:"<<ddwCreatorSysNo<<"] ";
			oss<<"[cCreatorSysNo_u:"<<(int)cCreatorSysNo_u<<"] ";
			oss<<"[dwRowCreatDate:"<<dwRowCreatDate<<"] ";
			oss<<"[cRowCreatDate_u:"<<(int)cRowCreatDate_u<<"] ";
			oss<<"[ddwModifierSysNo:"<<ddwModifierSysNo<<"] ";
			oss<<"[cModifierSysNo_u:"<<(int)cModifierSysNo_u<<"] ";
			oss<<"[dwRowModifyDate:"<<dwRowModifyDate<<"] ";
			oss<<"[cRowModifyDate_u:"<<(int)cRowModifyDate_u<<"] ";
		
		}

		// codydeng提供,非常好的dump方法 ^-^  。。。。。
		template<typename T>
		T & DumpPlusData(T& oss){
			oss<<"dwVersion:"<<dwVersion;
			oss<<"[cVersion_u:"<<cVersion_u<<"] ";
			oss<<"ddwCompanySysNo:"<<ddwCompanySysNo;
			oss<<"[cCompanySysNo_u:"<<cCompanySysNo_u<<"] ";
			oss<<"strCompanyName:"<<strCompanyName;
			oss<<"[cCompanyName_u:"<<cCompanyName_u<<"] ";
			oss<<"strCompanyCorporation:"<<strCompanyCorporation;
			oss<<"[cCompanyCorporation_u:"<<cCompanyCorporation_u<<"] ";
			oss<<"strCompanyID:"<<strCompanyID;
			oss<<"[cCompanyID_u:"<<cCompanyID_u<<"] ";
			oss<<"strTableID:"<<strTableID;
			oss<<"[cTableID_u:"<<cTableID_u<<"] ";
			oss<<"dwFCompanyStatus:"<<dwFCompanyStatus;
			oss<<"[cFCompanyStatus_u:"<<cFCompanyStatus_u<<"] ";
			oss<<"dwFCompanyProperty:"<<dwFCompanyProperty;
			oss<<"[cFCompanyProperty_u:"<<cFCompanyProperty_u<<"] ";
			oss<<"ddwCreatorSysNo:"<<ddwCreatorSysNo;
			oss<<"[cCreatorSysNo_u:"<<cCreatorSysNo_u<<"] ";
			oss<<"dwRowCreatDate:"<<dwRowCreatDate;
			oss<<"[cRowCreatDate_u:"<<cRowCreatDate_u<<"] ";
			oss<<"ddwModifierSysNo:"<<ddwModifierSysNo;
			oss<<"[cModifierSysNo_u:"<<cModifierSysNo_u<<"] ";
			oss<<"dwRowModifyDate:"<<dwRowModifyDate;
			oss<<"[cRowModifyDate_u:"<<cRowModifyDate_u<<"] ";
			return oss;
		}

		// wileywang提供,树形dump方法 ^-^  。。。。。
		void DumpDataTree(std::ostream& os, int ident = 0)const {
			g_pprint(os, "dwVersion", dwVersion, ident);
			g_pprint(os, "cVersion_u", cVersion_u, ident);
			g_pprint(os, "ddwCompanySysNo", ddwCompanySysNo, ident);
			g_pprint(os, "cCompanySysNo_u", cCompanySysNo_u, ident);
			g_pprint(os, "strCompanyName", strCompanyName, ident);
			g_pprint(os, "cCompanyName_u", cCompanyName_u, ident);
			g_pprint(os, "strCompanyCorporation", strCompanyCorporation, ident);
			g_pprint(os, "cCompanyCorporation_u", cCompanyCorporation_u, ident);
			g_pprint(os, "strCompanyID", strCompanyID, ident);
			g_pprint(os, "cCompanyID_u", cCompanyID_u, ident);
			g_pprint(os, "strTableID", strTableID, ident);
			g_pprint(os, "cTableID_u", cTableID_u, ident);
			g_pprint(os, "dwFCompanyStatus", dwFCompanyStatus, ident);
			g_pprint(os, "cFCompanyStatus_u", cFCompanyStatus_u, ident);
			g_pprint(os, "dwFCompanyProperty", dwFCompanyProperty, ident);
			g_pprint(os, "cFCompanyProperty_u", cFCompanyProperty_u, ident);
			g_pprint(os, "ddwCreatorSysNo", ddwCreatorSysNo, ident);
			g_pprint(os, "cCreatorSysNo_u", cCreatorSysNo_u, ident);
			g_pprint(os, "dwRowCreatDate", dwRowCreatDate, ident);
			g_pprint(os, "cRowCreatDate_u", cRowCreatDate_u, ident);
			g_pprint(os, "ddwModifierSysNo", ddwModifierSysNo, ident);
			g_pprint(os, "cModifierSysNo_u", cModifierSysNo_u, ident);
			g_pprint(os, "dwRowModifyDate", dwRowModifyDate, ident);
			g_pprint(os, "cRowModifyDate_u", cRowModifyDate_u, ident);
		}
		
		//提供ToString借口，默认为DumpData格式，请按需要进行修改
		std::string ToString() const{
			std::stringstream ss;
			DumpData(ss);
			return ss.str();
		}

/**
 ********************以下信息是每个版本的字段********************
 */

};

}
}
}

#endif /* ERP_COMPANY_PO_CCOMPANYINFOPO_BY_AUTOGEN_V5_H */
